<?php

class Estudios extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->datosusuario = $this->authentication->getDataLogged();
        $this->load->model('m_estudio', 'estudio');
    }

    /**
     * Listado de usuarios.
     *
     * @return void
     */
    function index() {
        $estudios = $this->estudio->getList();

        $data = array(
            'titulo' => 'Listado de Estudios',
            'datosusuario' => $this->datosusuario,
            'estudios' => $estudios,
            'seleccionar' => 'usuarios',
        );

        $this->load->view('templates/header', $data);
        $this->load->view('templates/topbar');
        $this->load->view('usuarios/leftbar');
        $this->load->view('estudios/index');
        $this->load->view('templates/footer');
    }

    /**
     * Crea un nuevo usuario.
     *
     * @return void
     */
    function nuevo() {

        $this->form_validation->set_rules($this->estudio->getValidacion());
        if ($this->form_validation->run() === FALSE) {
            if (isset($_POST['submit'])) {
                set_message(array('3' => validation_errors()));
                $estudio = $_POST;
            } else {
                $estudio = $this->estudio->valoresPorDefecto();
            }

            $data = array(
                'datosusuario' => $this->datosusuario,
                'titulo' => 'Nuevo Estudio',
                'estudio' => $estudio,
                'seleccionar' => 'usuarios',
            );

            $this->load->view('templates/header', $data);
            $this->load->view('templates/topbar');
            $this->load->view('usuarios/leftbar');
            $this->load->view('estudios/form');
            $this->load->view('templates/footer');
        } else {
            $this->estudio->setAttributes($this->input);

            $this->estudio->id = null;

            $this->estudio->save();

            set_message(array('1' => 'Se ha agregado un nuevo estudio: "' . $this->estudio->nombre . '".'));

            redirect('estudios/');
        }
    }

    function nuevo_popup() {

        $this->form_validation->set_rules($this->estudio->getValidacion());
        if ($this->form_validation->run() === FALSE) {
            if (isset($_POST['submit'])) {
                set_message(array('3' => validation_errors()));
                $estudio = $_POST;
            } else {
                $estudio = $this->estudio->valoresPorDefecto();
            }

            $data = array(
                'datosusuario' => $this->datosusuario,
                'titulo' => 'Nuevo Estudio',
                'estudio' => $estudio,
                'seleccionar' => 'usuarios',
            );

            $this->load->view('templates/header', $data);
            $this->load->view('estudios/form');
            $this->load->view('templates/footer');
        } else {
            $this->estudio->setAttributes($this->input);

            $this->estudio->id = null;

            $this->estudio->save();

            $data = array(
                'valor' => $this->estudio->id,
                'nombre' => $this->estudio->nombre,
            );
            $this->load->view('estudios/retorno_valor', $data);
        }
    }

    /**
     * Edita un usuario.
     *
     * @param integer $id El ID del usuario para editar.
     * @return void
     */
    function editar($id = '') {

        if ($id == '')
            redirect('usuarios/');


        if ($this->estudio->get((int) $id)) {

            $this->form_validation->set_rules($this->estudio->getValidacion(true));
            if ($this->form_validation->run() === FALSE) {
                if (isset($_POST['submit'])) {
                    set_message(array('3' => validation_errors()));
                    $estudio = $_POST;
                } else {
                    $estudio = $this->estudio->doArray();
                }


                $data = array(
                    'datosusuario' => $this->datosusuario,
                    'titulo' => 'Editar Estudio',
                    'estudio' => $estudio,
                    'seleccionar' => 'usuarios',
                    'editar' => true,
                );

                $this->load->view('templates/header', $data);
                $this->load->view('templates/topbar');
                $this->load->view('usuarios/leftbar');
                $this->load->view('estudios/form');
                $this->load->view('templates/footer');
            } else {
                $_POST['id'] = $this->estudio->id;

                $this->estudio->setAttributes($this->input);

                $this->estudio->save();

                set_message(array('1' => 'Se han editado el estudio: ' . $this->estudio->nombre . '.'));

                redirect('estudios/');
            }
        } else {
            redirect('estudios/');
        }
    }

    /**
     * Elimina un usuario.
     *
     * @param integer $id El ID del usuario a eliminar.
     * @return void
     */
    function eliminar($id = '') {
        if ($id == '')
            redirect('estudios/');

        if ($this->estudio->get((int) $id)) {
            if (!$this->estudio->tiene_usuarios()) {
                $this->estudio->delete();
                set_message(array('1' => 'Se ha eliminado el estudio "' . $this->estudio->nombre . '".'));
            } else {
                set_message(array('2' => 'No se puede eliminar el estudio "' . $this->estudio->nombre . '" por que contiene usuarios.'));
            }
        }

        redirect('estudios');
    }

}

